Networked computing environments enable users to access computing resources, data, and applications that are available on the computer network. In comparison, a non-networked environment allows users to access only the local computer and what the local computer has to offer. Current technology provides two ways for users to access applications over a network. A user can download an application from a server, install it on a computer, and then run it as a native application. A user can launch a web browser on a computer and use a locator, such as a uniform resource locator (URL), to download a browser application into the web browser and then run the browser application inside the web browser.
A web browser is a type of native application that runs on a computer. A native application can access a computer's system resources, such as hard drives, and peripherals. A computer with a windowing system can provide native applications with display windows and graphics capabilities. A web browser uses the windowing system to present browser windows to a user. A browser window has a meta UI area and a content area. The meta UI area contains controls, such as icons, menus, and text boxes, for controlling the web browser. The content area is used for web pages. For example, a browser application uses the content area to present information and accept input.
FIG. 22, labeled as “prior art”, illustrates a high level block diagram of a web browser 2201 interacting with a server 2211. When a user launches a web browser 2201, setup and configuration 2208 data is used to set the web browser's initial appearance and status. Also at startup, the web browser's meta UI elements are initialized. A meta UI title bar control 2203 sets the web browser's title bar. A meta UI tool bar control 2206 sets the web browser's tool bar. A meta UI menu control 2207 sets the web browser's menu bar and menus. A meta UI task bar control 2202 interfaces with the windowing system's task bar. A meta UI control 2204 can set other meta UI elements. The web browser's content area control 2209 displays the content area control obtained from the server 2211. The server's security 2213 and the web browser's security 2205 interact to ensure privacy and authenticity.
A browser application is different from a browser extension (also called a browser plug-in). A browser application is accessed on a server and uses the browser's content area for interacting with a user. A browser extension is obtained and then installed as part of the web browser. After installation, the browser extension and the web browser are both part of the same native application running on the computer. A browser extension can control the web browser's meta UI area because it is part of the browser. Furthermore, a browser extension has the same access to a computer's resources that the browser has because they use the same entry points.
A native application can store data in a computer's non-volatile memory. Web browsers make use of this capability by storing cookies and storing downloaded web pages onto the hard drive. Browser applications, however, have very limited access to the computer's non-volatile storage but can compensate by storing persistent data on a remote server. For example, a cookie on the computer can identify the user and thereby be used to access the users profile on a web site. As such, browser applications or server side applications can access data on a server.
Native applications can set window titles and can set the appearance of task bar icons. Browsers can set window titles and task bar icons to indicate the content currently within a browser window. Browser applications, however, can not set window titles and can not change the appearance of task bar icons.
Client/server applications are applications that often make extensive use of server side computing resources. The client side of the application is a native application the presents a user interface on the client computer's display. The client application then accepts user inputs and sends them to a server application. The server application processes the input and sends a response to the client application. The client application then updates the user interface based on the server's response.
Multiprocessing systems exist with multiple native processes running on multiple computers. Similarly, browser applications exist with multiple instances of the browser application running on many different computers. Browser applications, however, have very limited access to the computer's system resources. As such, collaborative browser applications are heavily dependent on server side support. Systems and methods for improved collaboration in a networked multiple computer environment are needed.